1. Field of the Invention
The present invention relates to the field of computer software and, more particularly, to voice browsers.
2. Description of the Related Art
Voice browsers are designed to standardize a user interface for customers browsing voice-driven content and services on a Voice Web. As such, a voice browser can be a device that interprets voice markup languages to create audio dialogues for synthesizing speech, digitizing audio, recognizing voice output, and interpreting voice input. One such voice markup language includes the Voice eXtensible Markup Language (VoiceXML) that is a markup language based on the World Wide Web Consortium's (W3C) industry-standard eXtensible Markup Language (XML).
Voice browsers can permit users to access an Internet or other packetized network using a telephone, where the telephone can be an interface peripheral used in a fashion analogous to the usage of a keyboard, mouse, and display for a “traditional” Web browser. In contrast to a traditional Web browser, which often resides as a client on; a user's computing device, a voice browser typically resides within a centralized server. The centralized server can receive audio input from a client for processing by the voice browser. The voice browser can responsively produce audio output, which can be conveyed from the centralized server to the client.
Current voice browser implementations are designed to be platform agnostic. That is, in order for a voice browser to run on a specific platform, one or more services or pieces of code are needed to tie the browser to the platform. The voice browser uses these services to communicate to platform specific resources, such as telephony resources, audio resources, and/or speech engines.
Voice browsers can be part of scalable voice solutions that include middleware components. The middleware components are predominately written in conformance with the JAVA 2 ENTERPRISE EDITION® (J2EE) standard, which supports multi-tiered, platform independent, distributed applications. One such middleware solution is a WebSphere Application Server® (WAS) from International Business Machines Corporation (IBM) of Armonk, N.Y. In order to easily scale a voice server solution, voice server components should be distributable among several machines. The degree of complexity required to distribute these components, however, can be extremely high due to the need for mechanisms to distribute and manage resources, prioritize tasks, route requests, and the like.
Conventional voice browsers are typically written as stand-alone solutions that require software programmers to develop and maintain the complex routines for managing distributed software segments and prioritizing and processing tasks received from multiple requesting clients. There are many reasons artisans skilled in software design choose stand-alone implementations instead of implementing the voice browser as a middleware component.
For components of a middleware solution to interoperate, each component must typically reside within a single program space that can be within a virtual machine. Alternatively, an external interface routine is necessary. External interface usage can add inefficiencies that result in latencies, which can be unacceptable when performing real-time processing tasks. Voice browsers often perform such real-time tasks. Additionally, voice browsers can utilize browser services and speech engines, each of which resides outside the program space of the voice browser. Accordingly, implementing a voice browser in a fashion which avoids long latencies can be extremely challenging; so much so, that no known methodology successfully implements a voice browser as a deployable software component written for a platform independent architecture.
It would be highly beneficial, however, if a voice browser could be successfully integrated within a middleware solution, such as a solution adhering to the J2EE architecture. Using the J2EE infrastructure can permit the leveraging of security routines, task management, signal routing, and other management tools, thereby reducing software overhead of the voice browser without sacrificing functionality.